package com.nenude.corejava.ch2;
/**
 * 
 * @author huanghailing
 *
 */
public class DateType {

	public static void main(String[] args) {
		
		// 基本数据类型间的准换
		
		byte bt=127;//数值储存时不能超过其（储值）范围
		short sh=4325;
		int i=123456;//整数默认是int 类型的
		
		long l=12345678;
		
		
		float f=123.34f;//单精度浮点数必须以f或F 类型的
		float f1=123.34F;
		
		double d1=123455.334;//小数默认是double 类型的
		double d2=123455.334d;//双精度的小数默认是以d或D结尾，不写默认是double 类型的
		double d3=123455.334D;
		
		
		//数值型强制转换:当把一个小范围数据专函为大时，可以自动转换
		//long 类型可以自动转换成为float 类型 
		d1=f=l=i=sh=bt;//byte ->short
		f=(float)d1; //大范围数据 转小范围数据时，需要进行强制转换，强制转换使用小括号（）表示
		l=(long) f;
		//l=(long)f=(float) f1; //错误写法；类型的强制转换不能连续转换
			
		//字符类型
		//char ch1=''; //错误写法，没有这样的空字符
		char ch1='a';  //字符使用单引号表示，引号内部内必须有一个特定的符号
		char ch2='$';
		char ch3='中'; // 字符类型能不能保存汉字//可以
		
		//char 类型可以自动转换为int 类型
		i=ch3;
		//强制转换
		ch3=(char) i;
				
		//字符与字符串
		String string=" ";//字符串使用双引号表示，可以是空字符串，空字符串不是null
		String string2=null;//字符串的默认值时null，null是一种特殊的数据类型（表示没有数据），表示空但不是空字符串

		//布尔值
		//boolean 表示一种逻辑类型，表示真与假，对和错，正与反
		boolean bool1=true;
		boolean bool2=false;
		
		
	//	----------------------------
		//使用下划线增加数据的可阅读性
		long l3=1_000_000_000; //从jdk1.7开始支持使用下划线线，增加数据的可阅读性；	
		long l4=1_0000_00000; 
		float f3=1234.1234_65677_1f;
	/*	3._1415_9265; // 小数点后不能添加下划线
		1234_4567_8901_2345_L; // 数字结尾不能添加下划线  
		_777_99_8888L; // 数值开头不能添加下划线
    */		 
		
		
	/*	--------------------------------*/
	//进制数
		//常用的数的进制数：二进制、八进制、十进制、十六进制
		//二进制： 0 1 
		//八进制： 0~7 
		//十进制 ：0~9
		//十六进制：0~9 Ａ　Ｂ Ｃ　Ｄ　Ｅ　Ｆ
		
		//数字之间的换算
		//十进制转二进制：用短除法，二进制转十进制
		//练习：用笔算，34转换为二进制，把10011111 转换为十进制
		
		
		
		//数据的表示
		//二进制数：以0B 或 0b开始
		int i3=0b10_1010_1010;
		//八进制数：以零（0）开头
		i3=010_1010_1017; 
		
	   //十六进制数:以0x开头
		i3=0xe3d4b5a6;
		
		
		
		//计算：2的3次方是多少？要求使用效率最高的方法计算
		// 2<< 2;
		
		
		
		
		
		
		
		
		
		
		
		
		
	}

	
	
	
	
	
	
}
